"""
音画同步项目数据模型
"""
from typing import List, Dict, Any, Optional


class SyncItem:
    """
    音画同步项目数据模型
    """
    
    def __init__(self, speech: str, video: str, keyword: str):
        """
        初始化音画同步项目
        
        @param speech: 话术
        @param video: 视频
        @param keyword: 关键词
        """
        self.speech = speech
        self.video = video
        self.keyword = keyword
    
    def to_dict(self) -> Dict[str, Any]:
        """
        转换为字典
        
        @return: 字典表示
        """
        return {
            "speech": self.speech,
            "video": self.video,
            "keyword": self.keyword
        }
    
    @classmethod
    def from_dict(cls, data: Dict[str, Any]) -> 'SyncItem':
        """
        从字典创建实例
        
        @param data: 字典数据
        @return: SyncItem 实例
        """
        return cls(
            speech=data.get("speech", ""),
            video=data.get("video", ""),
            keyword=data.get("keyword", "")
        )
    
    def __str__(self) -> str:
        """
        字符串表示
        
        @return: 字符串表示
        """
        return f"SyncItem(speech='{self.speech}', video='{self.video}', keyword='{self.keyword}')"
    
    def __repr__(self) -> str:
        """
        表示形式
        
        @return: 表示形式
        """
        return self.__str__() 